모의해킹
호스트기반모의해킹_18_자동 취약점 진단
작성자 : Heehyeon Yoo|2025-11-30
# 모의해킹# 자동화# Nuclei# Nikto# Scanner
1. 개요
자동 취약점 진단(Automated Vulnerability Assessment)은 스캐너(Scanner)를 이용하여 알려진 취약점(CVE)이나 잘못된 설정(Misconfiguration)을 탐지하는 과정이다.
- 오해와 진실: "툴을 쓰면 하수(Script Kiddie)"라는 인식은 잘못되었다. 실무에서는 효율성을 위해 자동화 도구로 넓은 범위를 스캔하고, 사람(전문가)은 그 결과를 검증(Verification)하거나 논리적 결함(Business Logic)을 찾는 데 집중하는 하이브리드 방식이 필수적이다.
- 한계점:
- 맥락(Context) 부재: 여러 취약점의 연계(Chaining)나 비즈니스 로직은 이해하지 못한다.
- 거짓 양성/음성(False Positive/Negative): 없는 취약점을 있다고 하거나, 있는 취약점을 놓치는 경우가 빈번하다.
2. 주요 도구(Open Source)
2.1 Nuclei
ProjectDiscovery에서 개발한 템플릿(Template) 기반의 최신 스캐너. Go 언어로 작성되어 매우 빠르고 유연하다.
- 특징: YAML 형식의 템플릿을 사용하여 사용자가 직접 커스텀 스캔 로직을 작성하기 쉽다.
- 설치:
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest - 핵심 명령어:
- 기본 스캔:
nuclei -u http://target.com - 자동 스캔(
-as): Wappalyzer 기술 스택 탐지 기능을 내장하여, 타겟의 기술(PHP, WordPress 등)에 맞는 템플릿만 자동으로 선별해 스캔한다.nuclei -u http://target.com -as - 비(非)웹 서비스 스캔(
-et): SSH, FTP 등 웹이 아닌 포트를 스캔할 때는 방대한 웹 템플릿을 제외하여 속도를 높인다.nuclei -u target.com:21 -et http
- 기본 스캔:
2.2 Nikto
오래되었지만 여전히 유용한 웹 서버 스캐너.
- 특징: CGI, 설정 파일 노출, 구형 서버 버전 탐지에 강하다.
- 사용법:
nikto -h http://target.com - 한계: SPA(Single Page Application)나 모던 자바스크립트 프레임워크 환경에서는 탐지율이 떨어진다.
2.3 Nessus(상용/무료)
Tenable 사의 업계 표준 GUI 스캐너.
- 특징: 인프라 전반의 취약점 DB가 방대하지만, 무료 버전(Essentials)은 IP 제한이 있다. 설치 및 설정이 무겁다.
3. 실무에서는?
- 심각도(Severity) 재평가 필수:
- 스캐너가 "Critical"로 보고한 취약점이 실제로는 공격 불가능한 환경일 수 있다.(예: 내부망 전용 취약점이 외부에 노출된 것처럼 오탐).
- 반대로 "Low"로 뜬 정보 노출이 RCE의 트리거가 될 수도 있다. 스캐너의 점수를 맹신하지 말고 공격 가능성(Exploitability)을 직접 판단해야 한다.
- 공격성 조절:
Active Scan기능은 서버에 과부하를 주거나 데이터를 오염(Dummy Data 삽입)시킬 수 있다. 운영(Production) 환경에서는 사전 협의 없이 돌리면 장애를 유발할 수 있으므로 주의한다.
- 도구의 조합:
- 하나의 툴만 쓰지 않는다. Nessus로 전체 인프라를 훑고, Nuclei로 웹 서비스의 최신 CVE를 검증하며, Burp Suite로 정밀 진단을 수행하는 식으로 도구를 레이어링(Layering)한다.